<?php

error_reporting(E_ERROR);
session_start();
require_once('../modelo/SeguridadUsuario.php');

if ($_POST["controlador"] == null) {
    echo json_encode(array("ERROR" => "Por favor Indicar el nombre del controlador Destino en el formulario para evitar conflictos con el 'Ruteo' de PHP."));
    return;
} elseif ($_POST["controlador"] <> "SeguridadUsuario") {
    return;
}

if ($_POST["OPERACION"] == "delete") {
    $id = $_POST["id"];
    $codUsuario = $_SESSION["SESSION_codUsuario"];
    echo SeguridadUsuario::delete($codUsuario, $id);
} elseif ($_POST["OPERACION"] == "insert") {

    //--- valido el password
    if (trim($_POST['password']) !== trim($_POST['password2'])) {
        echo json_encode(array("ERROR" => "Los Passwords NO coinciden, verifique"));
        exit();
    } elseif (trim($_POST['password']) === "") {
        echo json_encode(array("ERROR" => "Debe digitar el Password del Usuario"));
        exit();
    }

    $codUsuario = $_POST["codUsuario"];
    $nombreUsuario = $_POST["nombreUsuario"];
    $login = $_POST["login"];
    $password = strtoupper(MD5($_POST['password'] . strtoupper($_POST['login']))); //$_POST["password"];
    $activo = ( $_POST["activo"] === "on" ? true : false );
    echo SeguridadUsuario::insert($codUsuario, $activo, $codUsuario, $nombreUsuario, $login, $password);
} elseif ($_POST["OPERACION"] == "update") {
    //--- valido el password
    if (trim($_POST['password']) !== "" || trim($_POST['password2']) !== "") {
        if (trim($_POST['password']) !== trim($_POST['password2'])) {
            echo json_encode(array("ERROR" => "Los Passwords NO coinciden, verifique"));
            exit();
        }
    }

    $id = $_POST["id"];
    $codUsuario = $_POST["codUsuario"];
    $nombreUsuario = $_POST["nombreUsuario"];
    $login = $_POST["login"];
    $password = ($_POST['password'] !== "" ? strtoupper(MD5($_POST['password'] . strtoupper($_POST['login']))) : "" );
    $activo = ( $_POST["activo"] === "on" ? true : false );
    echo SeguridadUsuario::update($codUsuario, $id, $activo, $codUsuario, $nombreUsuario, $login, $password);
} elseif ($_POST["OPERACION"] == "selectById") {
    $id = $_POST["id"];
    echo SeguridadUsuario::selectById($id);
} elseif ($_POST["OPERACION"] == "selectAllHTMLTableFormat") {
    $numPagina = (!isset($_POST["numPagina"]) ? 0 : $_POST["numPagina"] );
    $registrosPorPagina = (!isset($_POST["registrosPorPagina"]) ? -1 : $_POST["registrosPorPagina"] );
    $campoFiltroOrden = (!isset($_POST["campoFiltroOrden"]) ? "" : $_POST["campoFiltroOrden"] );
    $valorFiltro = (!isset($_POST["valorFiltro"]) ? "" : $_POST["valorFiltro"] );
    echo SeguridadUsuario::selectAllHTMLTableFormat($numPagina, $registrosPorPagina, $campoFiltroOrden, $valorFiltro);
} elseif ($_POST["OPERACION"] == "selectAllHTMLSelectFormat") {
    echo SeguridadUsuario::selectAllHTMLSelectFormat();
} elseif ($_POST["OPERACION"] == "selectSupervisoresHTMLSelectFormat") {
    echo SeguridadUsuario::selectSupervisoresHTMLSelectFormat();
} elseif ($_POST["OPERACION"] == "selectEstibadoresHTMLSelectFormat") {
    echo SeguridadUsuario::selectEstibadoresHTMLSelectFormat();
} 

elseif ($_POST["OPERACION"] === "login") {
    $host = php_uname('n');  //--- nombre del PC cliente
    $login = strtoupper($_POST["login"]);
    $password = strtoupper(MD5($_POST['password'] . strtoupper($_POST['login'])));
    $result = SeguridadUsuario::login($host, $login, $password);
    if ($result == null) {
        echo json_encode(array("ERROR" => "No se pudo iniciar sesion, verifique"));
    } else if (is_string($result)) {
        echo json_encode(array("ERROR" => $result));
    } else if (gettype($result) == "object") {
        $_SESSION['SESSION_sessionId'] = session_id();
        $_SESSION["SESSION_id"] = $result->getId();
        $_SESSION["SESSION_activo"] = $result->getActivo();
        $_SESSION["SESSION_codUsuario"] = $result->getCodUsuario();
        $_SESSION["SESSION_login"] = $result->getLogin();
        $_SESSION["SESSION_nombreUsuario"] = $result->getNombreUsuario();
        echo json_encode("");
    }
} elseif ($_POST["OPERACION"] == "logout") {
    session_unset(); //destroys variables
    session_destroy(); // destruye la sesion
    echo json_encode("");
}
?>